// 识别的不认识的字符转变量，但是和var有冲突
package stack_opt

import (
	"Yasuo/iface/iyasuo"
	"Yasuo/utils"
	"errors"
	"fmt"
)

// 1. 运算之后，结果放进OPD操作数栈
// 对应OpStatus("text解析")
//  op.status <Function> <Start>
//        	test <Operand> <Text>
//         <Function> <Stop>
type OpStatus struct{}

func NewOpStatus() *OpStatus {
	return &OpStatus{}
}

func (o *OpStatus) InventedOpt(iys iyasuo.IYasuo) error {
	var (
		u *utils.Utils
		result float64 // 模拟业务操作结果
		err error
	)

	u = utils.NewUtils()

	fmt.Println("模拟opstatus业务操作，自动跳栈,也就是next+=3")
	result = float64(10)

	// 1. 结果放进操作数栈
	if err = u.PushBack(iys.GetOPD(), result); err != nil {
		return errors.New("入栈失败")
	}

	// 2. 下一个栈的位置
	iys.SetNext(iys.GetNext() + 3)
	return nil
}
